#include <stdio.h>
#include <stdint.h>
#include <time.h>

typedef enum {
    LOG_LEVEL_DEBUG,
    LOG_LEVEL_INFO,
    LOG_LEVEL_WARN,
    LOG_LEVEL_ERROR,
    LOG_LEVEL_NONE
} LogLevel;

// 设置日志级别
void log_set_level(LogLevel level);

void plog_printf(LogLevel level, const char* func, const char* file, int line, const char* fmt, ...);

// 新版日志宏（自动捕获函数名）
#define LOG_DEBUG(fmt, ...) plog_printf(LOG_LEVEL_DEBUG, __func__, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define LOG_INFO(fmt, ...)  plog_printf(LOG_LEVEL_INFO, __func__, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define LOG_WARN(fmt, ...)  plog_printf(LOG_LEVEL_WARN, __func__, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define LOG_ERROR(fmt, ...) plog_printf(LOG_LEVEL_ERROR, __func__, __FILE__, __LINE__, fmt, ##__VA_ARGS__)
